adTempus API
Extensions / Extension Examples
In This Topic
    Extension Examples
    In This Topic

    Sample code for creating extensions, including a library of reusable base classes to simplify extension development, is available for download here.

    Sample Code Contents

    adTempusExtensions400.xsd

    This XML schema file defines the schema for the extension definition file.

    CustomObjectSupport

    The CustomObjectSupport assembly provides base classes to simplify extension development. You can use the compiled assembly included in the ZIP, or adapt the source code for your own use. This assembly is not installed with adTempus, so you must include it with your extension if you use it.

    See the reference guide for the CustomObjectSupport assembly.

    CustomTaskVB

    This example implements a simple Custom Task extension in VB.NET, using the CustomObjectSupport library. This custom task allows the user to specify a message that is logged to the adTempus Job Log when the step runs.

    CustomTaskSettings

    This class defines the user-configurable settings for the task. In this example, there is only one setting: the Message to log to the job log.

    The class implements the Validate method to validate the settings.

    The CustomObjectBase class uses DataContract serialization to serialize the settings, so members of the settings class must be appropriately attributed with DataMember.

    The default user interface will be a Property Grid, so be sure to apply the Browsable, DisplayName, and Description attributes as appropriate.

    CustomTaskFactory

    This class handles instantiation and deserialization for the settings class.

    CustomTaskExecutor

    This class implements the execution logic for the task. It uses the ExecutionContext to communicate with the adTempus server to log the message.

    CustomTaskSimpleUI

    This class provides a simple Windows Form-based UI for the task settings. 

    Providing a Form is optional; adTempus can also use a standard Property Grid to edit the settings. The configuration file contains the necessary settings to use either approach. See the comments in the file to change it to use a Form instead of a Property Grid.

    MyCustomTask.adTempusExtension

    This is the definition file that is used to register the extension with adTempus.

    The userInterface element determines the type of user interface to display for editing the settings. The file initially is configured to use a Property Grid:

    <userInterface hostType="WinForms" interfaceType="PropertyGrid"/>

    To use the simple Form instead, comment out the PropertyGrid userInterface element and uncomment the PopUp element:

    <!--<userInterface hostType="WinForms" interfaceType="PropertyGrid"/>-->

    <userInterface hostType="WinForms" interfaceType="PopUp">

    <typeName>MyCustomTask.CustomTaskSimpleUI</typeName>

    </userInterface>

    Testing the Sample

    1. Build the CustomTaskVB sample.

    2. On the adTempus server, go to the adTempus program folder ("C:\Program Files\Arcana Development\adTempus\4.0") and create subfolder "Extensions\CustomTaskVB".

    3. Copy the following files into the CustomTaskVB folder:

    4. Restart the adTempus service. and the adTempus Console.

    5. Create a new Job. Provide a name and a user account.

    6. On the Steps page, add a new Step. In the Select Task window, choose the "Log a Message" task under the "Demo Custom Tasks" group.

    7. Configure the message to be logged.

    8. Save and run the job. The custom message will be written to the Job Log.

    To switch the user interface type, edit the definition file and restart the adTempus Console. You do not need to restart the adTempus service.